Enhancement/claude agents#120
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds first-class support for Claude Code agents alongside existing Copilot agents and updates documentation and assets to reflect the new “Architect” agent naming and workflows.
Changes:
- Introduces Claude-specific agent configurations and a new
holoviz-mcp install claudeCLI command (with project/user scopes and optional skills installation). - Refactors configuration and CLI code to support tool-scoped agents directories (
copilotvsclaude) while keeping existing behavior for other resources. - Updates tutorials, getting-started docs, navigation, and screenshots to use the new HoloViz DataViz Architect and DataApp Architect agents for both Copilot and Claude Code.
Reviewed changes
Copilot reviewed 21 out of 25 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
tests/test_cli.py |
Adds CLI and entrypoint tests ensuring the new install claude subcommand is wired correctly and exposes the expected help text. |
src/holoviz_mcp/config/resources/agents/copilot/holoviz-dataviz-architect.agent.md |
Renames and refines the Copilot data visualization planning agent to “HoloViz DataViz Architect” with updated role description. |
src/holoviz_mcp/config/resources/agents/copilot/holoviz-dataapp-architect.agent.md |
Renames and refines the Copilot app-planning agent to “HoloViz DataApp Architect” with an architecture-focused role description. |
src/holoviz_mcp/config/resources/agents/claude/holoviz-dataviz-architect.md |
Adds a Claude-specific “holoviz-dataviz-architect” agent definition and guidance, mirroring the Copilot DataViz Architect behavior for Claude Code. |
src/holoviz_mcp/config/resources/agents/claude/holoviz-dataapp-architect.md |
Adds a Claude-specific “holoviz-dataapp-architect” agent definition describing responsibilities and output format for application architecture planning. |
src/holoviz_mcp/config/models.py |
Extends HoloVizMCPConfig.agents_dir to accept an optional tool (“copilot” or “claude”), enabling separate agent subdirectories under resources/agents/. |
src/holoviz_mcp/cli.py |
Updates install_copilot to use the copilot agents subdirectory and adds a new install_claude command that installs Claude agents and shared skills to either project or user-level .claude directories. |
mkdocs.yml |
Adjusts navigation labels to use “Copilot” / “Claude” rather than editor-specific names, clarifying which tutorials target which assistant. |
docs/tutorials/weather-dashboard-copilot-vscode.md |
Updates references and screenshots to use the “HoloViz DataApp Architect” agent instead of the deprecated “HoloViz App Planner” name. |
docs/tutorials/stock-analysis-copilot-vscode.md |
Updates terminology and images to refer to the “HoloViz DataViz Architect” agent and tweaks wording accordingly. |
docs/tutorials/stock-analysis-claude-code.md |
Revises prompts and code fences to better reflect Claude Code usage patterns and updates a panel serve command. |
docs/tutorials/getting-started-copilot-vscode.md |
Renames the agent usage section and references to “HoloViz DataApp Architect” and updates the associated screenshot. |
docs/tutorials/getting-started-claude-code.md |
Adds an optional “Install Claude Agents” step documenting holoviz-mcp install claude (with --scope user and --skills) and renumbers later sections. |
docs/index.md |
Tweaks the feature bullets to emphasize “Agents and Skills” and “Display” as distinct capabilities. |
docs/how-to/configure-claude-code.md |
Documents new holoviz-mcp install claude commands (project/user scopes and skills) and links to the getting-started guide section. |
docs/assets/images/stock-analysis-holoviz-architect.png |
Adds an updated screenshot illustrating the DataViz Architect workflow for the stock analysis tutorial. |
docs/assets/images/holoviz-mcp-architect.png |
Adds an image asset representing the HoloViz MCP architect experience. |
docs/assets/images/copilot-holoviz-app-architect.png |
Adds a new screenshot for the Copilot HoloViz DataApp Architect UI. |
.github/prompts/ruff_check.prompt.md |
Removes an obsolete Ruff-specific prompt configuration no longer needed in the .github/prompts directory. |
.github/prompts/holoviz.prompt.md |
Removes a HoloViz development guidelines prompt file from .github/prompts. |
.github/prompts/developer_guide.prompt.md |
Removes an old developer guide prompt file that referenced external documentation. |
.github/agents/holoviz-app-planner.agent.md |
Deletes the legacy “HoloViz App Planner” agent definition in favor of the new architect agents. |
.claude/agents/holoviz-dataviz-architect.md |
Adds a repository-local Claude agent definition for holoviz-dataviz-architect (parallel to the config resources entry). |
.claude/agents/holoviz-dataapp-architect.md |
Adds a repository-local Claude agent definition for holoviz-dataapp-architect, mirroring the configuration under src/holoviz_mcp/config/resources/agents/claude/. |
| @install_app.command(name="claude") | ||
| def install_claude( | ||
| agents: bool = True, | ||
| skills: bool = False, | ||
| scope: Annotated[str, typer.Option("--scope", help="Installation scope: 'project' for .claude/agents/, 'user' for ~/.claude/agents/")] = "project", | ||
| ) -> None: | ||
| """Install HoloViz MCP resources for Claude Code. | ||
|
|
||
| Installs agent files to Claude Code's expected directory structure. | ||
|
|
||
| Parameters | ||
| ---------- | ||
| agents : bool, default=True | ||
| Install agent files | ||
| skills : bool, default=False | ||
| Install skills files | ||
| scope : str, default="project" | ||
| Installation scope: 'project' installs to ./.claude/agents/, | ||
| 'user' installs to ~/.claude/agents/ | ||
| """ | ||
| from pathlib import Path | ||
|
|
||
| from holoviz_mcp.config.loader import get_config | ||
|
|
||
| config = get_config() | ||
|
|
||
| if agents: | ||
| source = config.agents_dir("default", tool="claude") | ||
|
|
||
| # Determine target based on scope | ||
| if scope == "user": | ||
| target = Path.home() / ".claude" / "agents" | ||
| else: # project | ||
| target = Path.cwd() / ".claude" / "agents" | ||
|
|
There was a problem hiding this comment.
The scope option is documented as accepting only 'project' or 'user', but it is typed as a free-form str and any unexpected value falls through to the else branch and is treated as 'project' without feedback. This can lead to confusing behavior if a user mistypes the value (e.g. --scope User), as the command will "succeed" but install to the project-level path instead of the intended location. Consider constraining the option to explicit choices (e.g. Literal["project", "user"] or typer.Choice(["project", "user"])) and/or validating and erroring on invalid values.
No description provided.